The present invention generally relates to systems for synchronizing clocks in a computer network, and is more particularly related to techniques for improving time-transfer processing capacity in a network node that provides time-transfer protocol services to other network nodes.
Precision Time Protocol (PTP), as defined in the IEEE-1588-2008 standard entitled “Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems,” enables precise synchronization of clocks over a data packet network. In a nutshell, PTP is used to distribute a “grandmaster” clock's precise time-of-day to slave clocks. This is done using an exchange of PTP packets, which include timestamps carried inside. Slave clocks adjust these timestamps to account for end-to-end delay, and can obtain a local time-of-day aligned to the grandmaster with sub-microsecond precision, in some cases.
The IEEE 1588 standards describe a hierarchical master-slave architecture for clock distribution. In this architecture, an “ordinary clock” is a device having a single network connection. An ordinary clock can be the source of a synchronization reference, in which case it is known as a “master.” Alternatively, an ordinary clock can be the destination of a synchronization reference, in which case it is known as a “slave.” In contrast, a “boundary clock” has multiple network connections and can transfer synchronization from one network segment to another. The root timing reference in a system is called the “grandmaster.” The grandmaster transmits synchronization information to slave clocks residing on its network segment. These slave clocks may include one or more boundary clocks, which can then transfer synchronized time to other clocks for which the boundary clocks serve as masters.
While PTP messages are generally sent using multicast messaging, IEEE 1588-2008 includes specifications to allow a master clock to negotiate unicast transmission on a port-by-port basis. PTP messages used by ordinary and boundary clocks include Sync, Delay_Req, Follow_Up and Delay_Resp messages, which are used to transfer time-related information across the network. Additional message types are used by so-called “transparent clocks,” to measure delays across the network for improved correction of transferred time-of-day. These include Pdelay_Req and Pdelay_Resp messages. Announce messages are used in a so-called “best master clock algorithm” (BMCA) to determine the configuration of the master-slave hierarchy in a network, and to select the grandmaster. Announce messages in particular are used by the best master clock algorithm in IEEE 1588-2008 to build a clock hierarchy and select the grandmaster. Additional management and signaling messages are used to configure and maintain the PTP system.
Some PTP message types are time-critical, in that they must be accurately time-stamped on transmission or receipt. These messages, which are known as “event” messages and are generally repeated many times, include the Sync, Delay_Req, Pdelay_Req and Pdelay_Resp messages. Other non-time-critical PTP messages are known as “general” messages. These include the Announce, Follow_Up, Delay_Resp, Pdelay_Resp_Follow_Up, messages, as well as the management and signaling messages.
Each master port of a PTP boundary clock (BC) may require providing service to a number of slave clients. The total number of the clients a PTP master port can support is limited by the computational power of the processor that is running the PTP protocol stack for the PTP ports. This is especially true if unicast transport to and from each slave is used. Accordingly, improved techniques are needed for implementing PTP in a boundary clock.